package poo.agendina;

public class Nominativo implements Comparable<Nominativo> {

	private String cognome, nome, prefisso, telefono;

	public Nominativo(String cognome, String nome, String prefisso,
			String telefono) {
		this.cognome = cognome;
		this.nome = nome;
		this.prefisso = prefisso;
		this.telefono = telefono;
	}

	public String getCognome() {
		return cognome;
	}

	public String getNome() {
		return nome;
	}

	public String getPrefisso() {
		return prefisso;
	}

	public String getTelefono() {
		return telefono;
	}

	public boolean equals(Object x) {
		if (!(x instanceof Nominativo))
			return false;
		Nominativo n = (Nominativo) x;
		return this.cognome.equals(n.cognome) && this.nome.equals(n.nome);
		// non ci possono essere OMONIMIE.
	}

	public int hashCode() {
		final int MUL = 13;
		int h = 0;
		h = h * MUL + cognome.hashCode();
		h = h * MUL + nome.hashCode();
		return h;
	}

	public String toString() {
		return cognome + "-" + nome + " " + prefisso + "/" + telefono;
	}

	@Override
	public int compareTo(Nominativo n) {
		if (this.equals(n))
			return 0;
		if (this.cognome.compareTo(n.cognome) < 0
				|| this.cognome.equals(n.cognome)
				&& this.nome.compareTo(n.cognome) < 0)
			return -1;
		return 1;
	}
}
